/*
 * Copyright 2009 Al Phillips.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package test

import xsd4gorm.model.Domain
import xsd4gorm.xsd.XSDChomper
import xsd4gorm.xsd.support.Resolver
import xsd4gorm.gen.ClassSourceGenerator

public class Run {

    public static void main(String[] args){

        // 1. load file
        def file = new File("resources/purchase.xsd")

        // 2. validate
        /*def factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI)
        def schema = factory.newSchema(new StreamSource(new StringReader(xsd)))
        def validator = schema.newValidator()
        validator.validate(new StreamSource(new StringReader(XmlExamples.CAR_RECORDS)))
        */

        // 3. Slurp
        def xsd = new XmlSlurper().parse(file)

        // 4. Construct GORM model
        Domain domain = new Domain()
        XSDChomper chomper = new XSDChomper()
        chomper.chomp(xsd, domain)
        Resolver resolver = new Resolver()
        resolver.resolveTypes(domain)
        resolver.resolveClasses(domain)

        // 5. Generate source
        domain.classes.each {domainClass ->
            // println domainClass
            println new ClassSourceGenerator(domainClass).generate()
        }

        println 'done...'
        
    }
}


